package cate.game.pvp.pointrace.handler;

import cate.common.table.d.GDPointRace;
import cate.common.table.d.GDRank;
import cate.game.framework.advanced.AdvancedRankHandler;
import cate.game.pvp.pointrace.data.PointRaceOpponent;
import cate.game.pvp.pointrace.data.PointRacePs;
import cate.game.pvp.pointrace.data.PointRaceRank;
import reactor.core.publisher.Flux;

public interface PointRaceRankHandler extends AdvancedRankHandler<PointRaceRank> {

    int RANK_ID = GDRank.Id.POINT_RACE_RANK_ID;
    int RANK_LIMIT = GDPointRace.RANK_LIMIT;

    @Override
    default int getRankId() {
        return RANK_ID;
    }

    @Override
    default int getRankLimit() {
        return RANK_LIMIT;
    }

    default int update(PointRaceOpponent opponent, long newPoints) {
        return -1;
    }

    Flux<PointRacePs> getRankPsFlow();

    default void clear() {
    }
}
